package cn.huanzi.qch.springbootmybatis.service;

import cn.huanzi.qch.springbootmybatis.model.MysqlBackups;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * @author keven
 * @date 2023-02-10 10:45 上午
 * @Description
 */
public interface MysqlBackupsService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    MysqlBackups queryById(Integer id);

    /**
     * 分页查询
     *
     * @param mysqlBackups 筛选条件
     * @param pageRequest  分页对象
     * @return 查询结果
     */
    Page<MysqlBackups> queryByPage(MysqlBackups mysqlBackups, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param mysqlBackups 实例对象
     * @return 实例对象
     */
    MysqlBackups insert(MysqlBackups mysqlBackups);

    /**
     * 修改数据
     *
     * @param mysqlBackups 实例对象
     * @return 实例对象
     */
    MysqlBackups update(MysqlBackups mysqlBackups);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);


    /**
     * 查询所有备份数据
     */
    List<MysqlBackups> selectBackupsList();

    /**
     * mysql备份接口
     */
    Object mysqlBackups(String filePath, String url, String userName, String password);

    /**
     * 根据ID查询
     */
    MysqlBackups selectListId(Long id);

    /**
     * 恢复数据库
     *
     * @param smb      恢复对象
     * @param userName 数据库用户名
     * @param password 数据库密码
     * @return
     */
    Object rollback(MysqlBackups smb, String userName, String password);

}
